//package org.aplombh.java.awcing.basic.fifthLecture.knapsack;
//
//import java.util.Scanner;
//
///**
// * types V(ml)
// * name ρ(kg/ml)
// * <p>
// * 3 12
// * 沙子 6 2
// * 玻璃 4 1
// * 废铁 3 10
// */
//public class FillerProblem {
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//
//        int n = scanner.nextInt();
//        int m = scanner.nextInt();
//
//        SolveClass solve = new SolveClass(n, m);
//        for (int i = 1; i <= n; i++) {
//            solve.name[i] = scanner.next();
//
//            int density = scanner.nextInt();
//            int w = scanner.nextInt();
//
//            solve.v[i] = density;
//            solve.w[i] = w;
//            solve.s[i] = m / density + 1;
//        }
//        for (int j = 1; j <= m; j++) {
//            solve.f[1][j] = j * solve.w[1];
//        }
//        System.out.println(solve.solve());
//    }
//}
//
//// f[i][j] 表示选择前i个物品 体积为j的情况下 的所有情况
//// min
//class SolveClass {
//    int n, m;
//    int[][] f;
//    int[] density;
//    int[] s;
//    String[] name;
//
//    public SolveClass(int n, int m) {
//        this.n = n;
//        this.m = m;
//
//        f = new int[m + 1][m + 1];
//        density = new int[n + 1];
//        s = new int[n + 1];
//        name = new String[n + 1];
//
//    }
//
//    public int solve() {
//        for (int i = 1; i <= n; i++) {
//            for (int j = m; j >= 0; j--) {
//                for (int k = 1; k <= s[i] && k * v[i] <= j; k++) {
//                    f[i][j] = Math.max(f[i][j], f[i - 1][j - k * v[i]] + k * w[i]);
//                }
//            }
//        }
//        return f[n][m];
//    }
//}